Computers have become highly integrated in the workforce, in the home, in mobile devices, and many other places. Computers can process massive amounts of information quickly and efficiently. Software applications designed to run on computer systems allow users to perform a wide variety of functions including business applications, schoolwork, entertainment and more. Software applications are often designed to perform specific tasks, such as word processor applications for drafting documents, or email programs for sending, receiving and organizing email.
In some cases, computer systems communicate with each other using different types of software applications. However, such inter-application communication typically requires a processor to process each sent output and each received input. This increased workload can impose excessive overhead on a processor, especially when many thousands or millions of inputs and outputs are being sent between different software applications.
To avoid such processor involvement, while still allowing communication between applications (or between an application and a remote data store), remote direct memory access (RDMA) may be implemented. RDMA allows read and write requests from applications to flow directly from the application to a network storage device or storage server. The read or write request can be satisfied and transferred between the two computers without requiring the involvement of either system's processors.